<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    /*可以得到promise实例的api
        1. new Promise
        2. promise.then
        3. promise.catch
        4. Promise.resolve
        5. Promise.reject
        6. async函数的执行结果是一个promise
            当前这个promise的状态由async函数的执行结果来确定
                结果是一个值: 返回的promise是成功状态
                结果是一个promise: 返回的promise就是结果对应的promise
                async在执行中出异常:返回的promise就是失败状态

   */



   /* async function test() {
        await new Promise((resolve, reject)=>{
            setTimeout((flag)=>{
                if(flag){
                    console.log("第一步完成");
                    resolve()
                }else{
                    reject("第一步失败")
                }
            },1000,true)
        })
        await new Promise((resolve, reject)=>{
            setTimeout((flag)=>{
                if(flag){
                    console.log("第二步完成");
                    resolve()
                }else{
                    reject("第二步失败")
                }
            },1000,true)
        })
        await new Promise((resolve, reject)=>{
            setTimeout((flag)=>{
                if(flag){
                    console.log("第三步完成");
                    resolve()
                }else{
                    reject("第三步失败")
                }
            },1000,true)
        })
        console.log("----")
    }
    test()*/


    new Promise((resolve, reject)=>{
        setTimeout((flag)=>{
            if(flag){
                console.log("第一步完成");
                resolve()
            }else{
                reject("第一步失败")
            }
        },1000,true)
    }).then(()=>{
        return new Promise((resolve, reject)=>{
            setTimeout((flag)=>{
                if(flag){
                    console.log("第二步完成");
                    resolve()
                }else{
                    reject("第二步失败")
                }
            },1000,true)
        })
    }).then(()=>{
        return  new Promise((resolve, reject)=>{
            setTimeout((flag)=>{
                if(flag){
                    console.log("第三步完成");
                    resolve()
                }else{
                    reject("第三步失败")
                }
            },1000,true)
        })
    }).then(()=>{
        console.log("----")
    })



</script>
</html>